阅读更多

0顶
0踩

行业应用

原创新闻 Mirth Connect 互联互通 第五章 查询发送者通道

2018-09-20 09:20 by 见习记者 ssunigate 评论(0) 有23555人浏览

第五章 查询发送者通道

查询发送者通道是我们实现的第一个通道,也是最简单的通道。它的任务就是发送HL7v2资格查询请求消息的接口。因此源连接器的类型是Channel Reader。在这个管道下链接下一个通道就是v2-v3 Transformer channel,它使用MLLP消息传输协议,目标连接器类型配置为TCP Sender,由此MLLP是走TCP层传输的,也就是Socket技术。

为使测试容易点儿,区别进来的消息,v2-v3 Transformer channel通道会为每个消息分配UUID和日期时间戳,意味着该通道要调整每一个消息。另外,我们使用这个通道创建不合规的消息,测试我们以后为两个传输通道实现的验证脚本。

为了创建这个通道,咱们需要对通道的每个标签,即Summary, Sender, Destination,执行必要的配置。

Deploy, Preprocessor, Postprocessor Undeploy脚本不需要编写,因此它们不在本章讨论范围内。

. Summary 标签

创建新通道,切换到Summary标签。

输入通道名称,通道标记和通道描述。假设你已经删除了先前创建的Simple Channel,只有与本项目相关的通道,你可以忽略标记的创建。

单击Set Data Types,配置源链接器和目标连接器入站消息和出站消息为HL7v2.x,其他设置保持不变。检查一下Initial State是否设置为Started(其他选项有PausedStopped)

本通道或本项目的其他通道都没有attachments配置,即attachment=NONE。但至少,你应该看看attachments下拉菜单项里都有什么,每个试试,每项后面有个Properties属性,看看有什么不同。



 

 

5-1 Summary概要标签

再说一遍,Channel Tags字段项是方便的用于通道的逻辑排序。



 

 

5-2 源连接器入站和出站类型设置

记得,如果你对Attachment实验完了,将其值设置回None

 

. Source 连接器

切换到Source标签,检查Connector Type类型设置是否是Channel ReaderChannel Reader连接器通道其他设置保持不变。



 

 

5-3 源连接器设置

由于进来的所有消息都被接受,所有对于此通道不需要过滤器或转换器。校验连接器并保存改变。在左边导航栏中就是这两个菜单项:Validate ConnectorSave Changes

 

. Destinations Connector 目标连接器

切换到Destinations 标签,重命名存在的目标,把Destination 1 改为HL7v2-HL7v3 Transformer,你也可以选择填写你喜欢的名字。

根据总体管道图,这个目标是TCP client,因此,把连接器类型Connector Type改为TCP Sender

 

Remote Address地址栏填写本地机IP地址:127.0.0.1,或输入你知道的其他TCP服务器的IP地址。

Remote Port远程端口给个6611,如果你计算机上的应用程序已占用该端口或本项目使用的任何端口,那么你就把所有相关的通道涉及的端口都调整一下。

 

Template Box 模板框里已经有${message.encodedData},如果没有你可以从Destination Mappings目标映射里拖拽Encoded Data 到模板框里,目标映射就在Mirth Connect Administrator右边的面板里。(看看图5-4)

其他设置保持不变,保存这个通道。

 

这个目标不需要过滤器,然而,根据我们先前的讨论,该通道调整入站消息,目的是区别不同的消息,这一切由目标转换器脚本来完成。



 

 

5-4 目标连接器设置

单击Edit Transformer为本目标创建转换器脚本。有四个脚本,三个是javascript,一个是Message Builder。该目标是由四个脚本进行顺序工作的。看图5-5



 

 

5-5 To HL7v2-HL7v3目标转换器步骤

添加新转换器步骤,把类型改为Javascript ,重命名此步骤。你可以使用我给的转换器名字或使用你自己的。下面是为每个转换器写的脚本。

MSG Segment 更新转换器

这个脚本吧入站消息元素分配给出站消息元素。由于出站模板还没有,撰写的脚本把入站消息对象分配给tmp变量,映射了所有字段。

SOURCE 5-1 MSH Segment Transformer script

tmp = msg; tmp['MSH']['MSH.7']['MSH.7.1'] = Now("yyyyMMddhhmmss");

tmp['MSH']['MSH.10']['MSH.10.1'] = UUIDGenerator.getUUID();

 

从脚本上看出,该转换器步骤把当前的日期时间戳赋值给出站消息字段。类似的,把UUID也赋值给了消息字段。

Patient ID 生成器

该脚本创建序列号模拟病人的识别码,例如社保号。用不着说,这个识别码不遵循任何规则,完全是虚构的。识别码被分配到适合的消息字段上。

SOURCE 5-2 Patient ID Transformer script

tmp['QPD']['QPD.3']['QPD.3.1'] = getPatientID();

function getPatientID() {

var patientId = '';

for ( var i = 0; i <= 9; i++ ) {

patientId += Math.floor( (Math.random() * 10) );

}

return patientId;

};

这个脚本展示了你可以使用JS函数来规划程序逻辑。

Query Tag 生成器

该转换器步骤使用了Message Builder消息编译器类型。它把查询消息控制ID号的部分映射到QPD片段的查询标记上。说的好像是拉丁文,换句话说,该转换器步骤把MSH.10.1的内容从第11个字符开始截取,赋值给QPD2.1,在真实情况中,你可以用它来调试消息请求。本项目中它是用于区别消息的。看图5-5

填写Message SegmentMapping fields

Message Segment: tmp['QPD']['QPD.2']['QPD.2.1']

Mapping: tmp['MSH']['MSH.10']['MSH.10.1'].substring(10)

注意,在本界面中的编辑器区域有StepGenerated Script标签。切换到Generated Script标签,你应看到自动生成的JS代码支撑你的映射看图5-6



 

 

5-6 Message Builder自动生成的脚本

生成的脚本适用于不同的转换器和过滤器步骤。你可以使用它学习怎样在Mirth 中编写正确的JS代码。

TEST ONLY(故意犯难的步骤)

这是最后一个脚本了,这个脚本是不需要的,只有我们实现了Data Logger通道,该脚本才是必须的。但是为了保持所有Query Sender通道脚本在一个位置,也在此列出来了。这个脚本校验消息触发事件字段,如果是ERR2事件,它随机调整三个消息字段:消息类型、触发事件、和版本号。在向后的步骤中用来验证失败的消息。当然,你可以手工更改你发送消息字段的内容,来校验验证算法。我发现那是非常单调乏味的且浪费时间。

SOURCE 5-3 Intentionally Malformed Transformer script

if ( 'ERR2' == msg['MSH']['MSH.9']['MSH.9.2'].toString().toUpperCase() ) {

if ( Math.floor((Math.random()*10)+1) > 5 )

tmp['MSH']['MSH.9']['MSH.9.1'] = 'QQQ';

if ( Math.floor((Math.random()*10)+1) > 5 )

tmp['MSH']['MSH.9']['MSH.9.2'] = 'E99';

if ( Math.floor((Math.random()*10)+1) > 5 )

tmp['MSH']['MSH.12']['MSH.12.1'] = '9.9';

}

对每一步骤的脚本进行验证,脚本无错误,保存改变。这里总结了你必须对Query Sender通道做出的一些改变。

通道实现验证

由于本项目管道下的其他通道接收由Query Sender通道发送的消息,仍然不可用,也就是说,其他通道还没设计,为了校验这个通道,暂且改变目标连接器的类型,从TCP Sender改为File Writer,如果你有更好的想法,值得推荐,克隆(见导航栏Clone Desination菜单项)源To HL7v2-HL7v3 Transformer 目标,把连接器类型改为File Writer,禁止掉HL7v2-HL7v3 Transformer目标,看图5-7



 

 

5-7 克隆目标连接器和设置

设置目录和文件名,或者使用在Simple Channel创建的Global Map值。拖拽Encoded Data消息类型到模板。保存改变,重新部署通道。

Mirth Connect AdministratorDashboard驾驶舱视图里,单击Send Message,拷贝粘贴QBP^E22消息样例(Source5-4)到消息框。说明一下,一些字段忽略掉了,例如创建日期时间戳。

SOURCE 5-4 QBP^E22 Query Authorization Request sample message

MSH|^~\&|ADM|Sending Organization|ALL|Receiving Organization|||QBP^E22^QBP_E22||D|2.7|||AL|AL

QPD|E22^Authorization Request^CIHI0003||^^^ISO^PHN|Everywoman^Mary^Patrick^^^^L^|19680120|MSP^|EXT

RCP|I

如果你创建了单独的File Writer目标连接器,把消息存储为文件,那你没必要禁止掉原来的HL7v2-HL7v3 Transformer ,可以在目标列表中选择要发送给的目标连接器。反选就是不接收消息。

单击Process Message,消息立即发出后,文件应该在你指定的文件里出现了。看图5-8



 

 

5-8 Query Sender发送消息

打开文件,去确认MSH片段的日期时间戳字段的设置,消息识别码的设置,看看UUID,看看QPD片段取自识别码10个字符以后的字符串。



 

 

5-9 Query Sender通道生成文件的内容

重复上面的步骤,发送另外一个消息,把QBP^E22^QPB_E22改为QBP^ERR2^QPB_E22,然后再次发送消息,打开新创建的文件,确认至少有一个字段是不正确的。



 

 

5-10 test Only转换器步骤改掉的内容

看见了吧,两个字段不正确的,就是我们的TEST ONLY转换器步骤改的。

使能或启动HL7v2-HL7v3 Transformer禁止掉或删除掉To File目标连接器,保存改变。

 

我们做完了Query Sender通道。咱们继续下一个通道的实现。

 

 

 

0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Mirth Connect操作手册

    Mirth Connect可以进行HL7 包括构建和交换医疗保健信息的标准,以及系统集成和互操作性的其他标准。医疗保健系统可以使用这些标准、指南和方法以统一、一致的方式相互通信、共享信息和处理数据,有助于减少医疗保健...

  • Mirth Connect 互联互通 第五章 查询发送者通道

    第五章 查询发送者通道 查询发送者通道是我们实现的第一个通道,也是最简单的通道。它的任务就是发送HL7v2资格查询请求消息的接口。因此源连接器的类型是Channel Reader。在这个管道下链接下一个通道就是v2-v3 ...

  • Mirth Connect 互联互通 第四章 通用资格服务实现

    第五章:查询发送者通道 第六章: HL7v2 to HL7v2 转换器通道 第七章:数据记录器通道 第八章:HL7v3 校验通道 第九章:应答发送者通道 第十章:HL7v3 to HL7v2 转换器通道   第四章:通用资格服务介绍 ...

  • Mirth Connect 第三章 创建通道

    第三章 创建通道  引子:本章是最基本的操作,有详实的图片,供大家参考,向后章节就不会这么详细了,因为大多数基本操作都在这里介绍了。 本章介绍了通道的真实环境实现,及生命周期,每一个组件最基本的概念。...

  • Mirth Connect 第一章 快速安装

    前言:本人会陆续发表相关章节,有需要的人可以耐心等待,总章节供21章,会依次...本章介绍了Mirth Connect3.4的基本安装过程,所有的例子都是基于windows操作系统的。安装前请确认满足以下三方面的要求: 1. JRE1....

  • Mirth Connect 第二章 什么是通道?

    本章主要介绍Mirth Connect开发框架,讲解运行的各个阶段,请大家仔细研读、理解,对后续章节帮助是很大的。开发者把前端与服务分开运行,服务框架集成了很多流行的服务及协议,从中我们也可以看出开发的大致原理。...

  • ydh-fhir-listeners:Yeovil区医院NHSFT的Mirth Connect FHIR侦听器通道,可与InterSystems TrakCare PAS一起使用(v2020)

    Yeovil区医院NHSFT的Mirth Connect FHIR侦听器通道,可与InterSystems TrakCare PAS一起使用(v2020) 介绍 目的 此回购概述了为提供SIDeR计划所需的技术可交付成果而采取的步骤,以及在开发过程中遇到的问题以及...

  • Mirth Connect V3.0.1 使用文档

    Mirth Connect 使用文档! 难得的一份!

  • Unofficial Mirth Connect 3.4 Developer´s Guide

    As Mirth Corporation (now is a subsidiary of Quality Systems, Inc.) says on their web-site, “Mirth Connect is the Swiss Army knife of healthcare integration engines, specifically designed for HL7 ...

  • Mirth+Connect在医疗信息集成中的应用

    Mirth+Connect在医疗信息集成中的应用

  • Mirth Connect3.6 使用文档

    Mirth是现在国际上比较成熟的HL7引擎技术之一,它是一个开放源代码的跨平台HL7标准接口引擎,是专为HL7消息接口设计的“瑞士军刀”,它为开发、配置和监听接口提供了必要工具。mirth是一个HL7标准接口网关,它能进行...

  • Mirth Connect V3.4 使用文档

    Mirth Connect 3.4 使用文档,推荐下载!

  • mirth-connect-channel-examples:Docker上的虚拟连接示例集

    DOCKER上的MIRTH CONNECT实例 Authors: Marly Cormar, Surya Prasanna, Dileep Rajput. 先决条件 最新的 。 目前的例子 这个多容器泊坞窗的目标是测试Mirth Connect的功能。 频道包括: json_to_hl7_dest_channel...

  • mirth-connect-analyzer

    Mirth Connect分析仪 报告书 听众 侦听传入连接的每个通道的列表。 channelName channelID serverMode 主持人 港口 remoteAddress 远程端口 OverrideLocalBinding reconnectInterval receiveTimeout 缓冲区...

  • Mirth Connect 快速安装

    现公司(小公司)有需求,要做医院信息集成平台,经过调研,选定mirth connect做为数据集成引擎,以下对自己学习所了解Mrith的知识,与大家分享。 Mirth Connect简介 正如MC官方在其网站上所说: “Mirth Connect...

  • 基于51单片机的音乐播放器设计+全部资料+详细文档(高分项目).zip

    【资源说明】 基于51单片机的音乐播放器设计+全部资料+详细文档(高分项目).zip基于51单片机的音乐播放器设计+全部资料+详细文档(高分项目).zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 2024xxx市智能静态交通系统运营项目可行性实施方案[104页Word].docx

    2024xxx市智能静态交通系统运营项目可行性实施方案[104页Word].docx

  • Cadence-Sigrity-PowerDC-2023.1版本的用户手册.pdf

    Sigrity PowerDC technology provides comprehensive DC analysis for today's low voltage, high-current PCB and IC package designs. It is available with integrated thermal analysis to enable electrical and thermal co-simulation. Using PowerDC, you can assess critical end-to-end voltage margins for every device to ensure reliable power delivery. PowerDC quickly identifies areas of excess current density and thermal hotspots to minimize the risk of field failure in your design.

  • node-v0.12.10-sunos-x86.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • node-v4.8.3-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

Global site tag (gtag.js) - Google Analytics